In computer graphics, shadow rendering is a technique in which shadows are added to a three-dimensional (3D) scene based on whether particular locations of the scene are illuminated by a light source. A graphics processing unit (GPU) may perform such shadow rendering for a particular location of the 3D scene by emanating a vector called a shadow ray from the location towards the light source. If the GPU determines that the shadow ray intersects a primitive in the scene geometry, the GPU may determine that the source location is in shadow and is not illuminated by the light source.
In order to accelerate the process of finding shadow ray-primitive intersections, the GPU may arrange the scene geometry of the 3D scene in an acceleration data structure (ADS) that hierarchically groups scene primitives (e.g., triangles). The GPU may recursively traverse the ADS by performing shadow ray intersection tests on the hierarchy of scene primitives to determine whether the shadow ray intersects a primitives of the scene. If the GPU determines that the shadow ray emanating from a particular location intersects a primitive based on the traversal of the ADS, the GPU may determine that the particular location is occluded from the light source by at least the primitive.